<?php

class TurnoController extends AppController {

    public function abrirturno() {
        //Si ya existe un turno con estado Activo, redigirir al index
        $countTurnos = $this->Turno->find('count', array('conditions' => array('Turno.estado_tur' => 'Activo')));
        if ($countTurnos > 0)
            $this->redirect(array('action' => 'index'));


        if ($this->request->is('post')) { //Si hay $_POST
            $this->Turno->create();
            if ($this->Turno->save($this->request->data)) {
                $this->Session->setFlash('Se ha abierto el nuevo turno');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('No se pudo abrir el turno');
            }
        } else {
            //Chequear que no haya otro turno abierto, si hay abierto mostrar
            //mensaje de error y redirigir al index
        }
    }

    public function index() {

        $countTurnos = $this->Turno->find('count', array('conditions' => array('Turno.estado_tur' => 'Activo')));
        $this->set('countTurnos', $countTurnos);

        if ($countTurnos > 0) {   //Existen turnos abierto, obtenemo los datos del primer encontrado
            $this->set('turnoActivo', $this->Turno->find('first', array('conditions' => array('Turno.estado_tur' => 'Activo'))));
        }
    }

    public function cerrarturno($id = null) {
        
        if (!$id) { //Validamos que pase ID
            throw new NotFoundException(__('Turno inválido'));
        }
        $turnoCerrar = $this->Turno->findByIdAndEstado_tur($id,'Activo');
        if (!$turnoCerrar) { //validamos que se encuentre el turno especificado
            throw new NotFoundException(__('Turno no encontrado'));
        }
        
        if ($this->request->is('turno') || $this->request->is('post')) {
            $this->Turno->id = $id;
             
            if ($this->Turno->save($this->request->data)) {
                $this->Session->setFlash('El turno se ha cerrado');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('No se pudo cerrar el turno');
            }
        }
        
        $countTurnos = $this->Turno->find('count', array('conditions' => array('Turno.estado_tur' => 'Activo')));

        if ($countTurnos < 0) {   //No existen turnos para cerrar, redirigimos a index del TurnoController
            $this->Session->setFlash('No existen turnos para cerrar');
            $this->redirect(array('action' => 'index'));
        } else { //Existe turno para cerrar
            //Mostrar vista para cerrar turno (estilo confirmación)
            //Obtenemos el turno activo y lo pasamos a la vista
            $this->set('turnoActivo', $this->Turno->find('first', array('conditions' => array('Turno.estado_tur' => 'Activo'))));
        }
        
    }

}

?>